Unidad 6.2 - DTD y XSL
DTD y XSL permiten validar, transformar y representar documentos XML. En esta unidad se estudian estructuras DTD, transformaciones XSLT, XPath y generación dinámica de HTML a partir de XML.
6.12 DTD (Document Type Definition)
DTDDTD define las reglas que debe cumplir un documento XML. Permite validar estructura, orden y contenido.
¿Para qué sirve?
- Validar XML.
- Definir elementos permitidos.
- Definir atributos.
- Controlar estructura.
Ejemplo básico
Mini-test
1. ¿Qué significa DTD?
6.13 DTD - Ejemplos XML-DTD
XML DTDDTD valida la estructura definida dentro de un XML.
Documento XML
DTD asociado
Mini-test
1. ¿Qué significa #PCDATA?
6.14 DTD - Tipos de DTD
interno externoExisten dos tipos principales de DTD.
DTD interno
DTD externo
Diferencias
| Tipo | Características |
|---|---|
| Interno | Dentro del XML |
| Externo | Archivo .dtd separado |
Mini-test
1. ¿Dónde se guarda un DTD externo?
6.15 DTD - Cuantificadores DTD
? * +Los cuantificadores indican cuántas veces puede repetirse un elemento.
| Símbolo | Significado |
|---|---|
| ? | 0 o 1 vez |
| * | 0 o muchas |
| + | 1 o muchas |
Ejemplo
Mini-test
1. ¿Qué símbolo indica “1 o muchas”?
6.16 DTD con atributos
ATTLISTLos atributos en DTD se definen mediante ATTLIST.
Palabras importantes
- ID → identificador único.
- #REQUIRED → obligatorio.
- #IMPLIED → opcional.
Mini-test
1. ¿Qué significa #REQUIRED?
6.17 ¿Qué es XSL?
XSLXSL es un conjunto de tecnologías para transformar y representar XML.
Componentes
- XSLT → transforma XML.
- XPath → selecciona nodos.
- XSL-FO → formato impresión/PDF.
Mini-test
1. ¿Qué componente transforma XML?
6.18 XSLT
XSLTXSLT transforma documentos XML en otros formatos.
Transformaciones posibles
- HTML
- Otro XML
- Texto plano
- JSON
Mini-test
1. ¿Qué hace XSLT?
6.19 Plantillas (xsl:template)
templateLas plantillas indican qué hacer cuando se encuentra un nodo XML.
match="/"
Selecciona la raíz del documento XML.
Mini-test
1. ¿Qué hace xsl:template?
6.20 XPath: cómo seleccionamos datos
XPathXPath permite navegar por documentos XML.
| Expresión | Función |
|---|---|
| / | Raíz |
| . | Nodo actual |
| .. | Nodo padre |
| @ | Atributos |
Mini-test
1. ¿Qué símbolo selecciona atributos?
6.21 Ejemplo XPath y uso
selectXPath puede filtrar y buscar nodos específicos.
Explicaciones
- [1] selecciona el primero.
- @categoria selecciona atributo.
- // busca en cualquier parte.
Mini-test
1. ¿Qué hace //producto?
6.22 Bucles: xsl:for-each
for-eachPermite recorrer listas de elementos XML.
Mini-test
1. ¿Qué hace xsl:for-each?
6.23 XSLT: estructura básica
stylesheetPartes importantes
- xsl:stylesheet → raíz XSLT.
- xsl:template → plantilla.
- match → nodo seleccionado.
Mini-test
1. ¿Cuál es el elemento raíz XSLT?
6.24 xsl:value-of y @
value-ofxsl:value-of extrae contenido de nodos.
Seleccionar atributos
Mini-test
1. ¿Qué hace xsl:value-of?
6.25 HTML + XSLT
HTMLXSLT puede generar páginas HTML dinámicas desde XML.
Mini-test
1. ¿Puede XSLT generar HTML?
6.26 xsl:apply-templates y xsl:attribute
apply-templatesapply-templates aplica reglas automáticamente a subelementos.
xsl:attribute
Ejemplo completo
Mini-test
1. ¿Qué hace xsl:apply-templates?
6.27 Resumen y aspectos extra
Resumen| Elemento | Función |
|---|---|
| xsl:template | Define transformaciones |
| xsl:value-of | Extrae valores |
| xsl:for-each | Recorre nodos |
| XPath | Selecciona elementos |
| xsl:attribute | Crea atributos dinámicos |
Aspectos importantes
- XML fue muy usado en APIs antiguas.
- JSON ha reemplazado parte de XML.
- XSLT sigue siendo útil en sistemas empresariales.
- Android aún usa XML ampliamente.
Mini-test
1. ¿Qué tecnología selecciona nodos XML?